<?php
namespace Home\Model;
use Think\Model;
class UserModel extends Model {
	protected $tableName = 'user';
	/**
	 * 用户登陆
	 * @param string $name 用户名
	 * @param string $password 密码
	 * @return mixed
	 */
	public function login($name='',$password=''){
		//数据为空，直接返回false
		if(empty($name) || empty($password)){
			return array();
		}
		$v = array(
			'name' => $name,
			'password'	=> sha1($password)
		);
		//数据库查询是否有对应用户信息
		$data = $this->where($v)->field('user_id,name,nike_name,validity,key,activity_time,mobile')->select();
		if(empty($data)){
			return array();
		}
		
		return $data[0];
	}
	/**
	 * 用户退出登录
	 * @param string $user_id 用户名
	 */
	public function logout($user_id=''){
		if(!empty($user_id)){
			//用户退出，把用户的key设置为''
			$this->where(array('user_id' => $user_id))->save(array('key'=>''));
		}
	}
	/**
	 * 检测用户是否登陆
	 * @param string $user_id 用户ID
	 * @param string $key  用户登录后获取的Key
	 * @return array 
	 */
	public function loginCheck($user_id='',$key=''){
		//数据为空，直接返回false
		if(empty($user_id) || empty($key)){
			return false;
		}
		$v = array(
			'user_id' => $user_id,
			'key'	=> $key
		);
		//print_r((array)$v);
		//到数据库查询是否有对应的登陆信息
		$data = $this->where($v)->field('user_id,name,nike_name,validity,key,activity_time')->select();
		if(empty($data)){
			return array();
		}else{
			return $data[0];
		}
	}
	/**
	 * 用户注册
	 * @param string $name
	 * @param string $password
	 * @return mixed 成功返回用户ID
	 */
	public function register($name='',$password=''){
		//数据为空，直接返回false
		if(empty($name) || empty($password)){
			return false;
			$this->error = '参数错误';
		}
		$v = array(
			'name' => $name,
			'password'	=> sha1($password)
		);
		//检测用户是否存在
		$r = $this->nameCheck($name);
		if(empty($r)){
			$d = $this->data($v)->add();
			if(empty($d)){
				return $d;
			}else{
				return false;
			}
		}else{
			$this->error = '已经有一个同名用户';
			return false;
		}

	}
	/**
	 * 检测用户名是否存在
	 * @param string $name
	 * return boolean
	 */
	public function nameCheck($name=''){
		$f = $this->where(array(name => $name))->select();
		if(empty($f)){
			return true;
		}else{
			return false;
		}
	}
}
?>